import 'dart:convert';

import 'package:app/pages/personnel_module/personnel_view.dart';
import 'package:app/pages/published_daily_module/published_daily_controller.dart';
import 'package:app/router/app_pages.dart';
import 'package:app/utils/search_module.dart';
import 'package:bot_toast/bot_toast.dart';
import 'package:bruno/bruno.dart';
import 'package:extended_text_field/extended_text_field.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:image_pickers/image_pickers.dart';
import '../../common/app_theme.dart';
import '../../common/colors.dart';
import '../../common/tool.dart';
import '../../components/base_scaffold_appbar.dart';
import '../../components/bottom_enter_page.dart';
import 'dart:io';

import 'custom_toolbar.dart';

class PubLishedDailyView extends GetView{


  PublishedDailyController controller = Get.put(PublishedDailyController());

  _emoJiList() {
    return FutureBuilder(
        future:
        DefaultAssetBundle.of(Get.context!).loadString("images/emoji_list.json"),
        builder: (context, snapshot) {
          if (snapshot.hasData) {
            List<dynamic> data = json.decode(snapshot.data.toString());

            return Stack(
              children: <Widget>[
                Container(
                  height: 200,
                  padding:
                  EdgeInsets.only(left: 0, top: 0, right: 0, bottom: 5),
                  color: AppColor.bgColor,
                  child: GridView.custom(
                    padding: EdgeInsets.all(0),
                    shrinkWrap: true,
                    gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
                      crossAxisCount: 6,
                      mainAxisSpacing: 0.5,
                      crossAxisSpacing: 6.0,
                    ),
                    childrenDelegate: SliverChildBuilderDelegate(
                          (context, index) {
                        return GestureDetector(
                          onTap: () {
                            controller.editingController.text = controller.editingController.text +
                                String.fromCharCode(data[index]["unicode"]);
                            // setState(() {});
                          },
                          child: Center(
                            child: Text(
                              String.fromCharCode(data[index]["unicode"]),
                              style: TextStyle(fontSize: 15),
                            ),
                          ),
                        );
                      },
                      childCount: data.length,
                    ),
                  ),
                ),
              ],
            );
          }
          return const CupertinoActivityIndicator();
        });
  }

  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Scaffold(
      resizeToAvoidBottomInset: false, // 就是这里
      backgroundColor: AppColor.bgColor,
      appBar: BaseAppBar(
        preferredSize: Size(Get.width, AppTool.appBarHEIGHT),
      child: Text('发布日报'),),
      // AppBar(
      //   backgroundColor: AppColor.themeColor,
      //   leading: IconButton(
      //     onPressed: () {
      //       Get.back();
      //     },
      //     icon: Image.asset(
      //       'images/leftarr.png',
      //       color: Colors.white,
      //       width: 15,
      //       height: 15,
      //     ),
      //   ),
      //   title: Text('发布日报'),
      // ),
      body: GestureDetector(
        onPanDown: (_) {
          /// 列表滑动响应
          SearchModule.closeKeyboard(context);
        },
        onTap: (){
          SearchModule.closeKeyboard(context);
        },
        child: GetBuilder<PublishedDailyController>(builder: (_){
          return Column(
            children: [
              Expanded(
                child: ListView(
                  children: [
                   Container(
                     padding: EdgeInsets.only(left: 15,right: 15),
                     height: 200,
                     child: ExtendedTextField(

                       autofocus: true,
                       decoration: InputDecoration(
                         hintText: '请填写日报的内容',
                         border: InputBorder.none,
                       ),
                       specialTextSpanBuilder: controller.mySpecialTextSpanBuilder,
                       controller: controller.editingController,
                       maxLines: 10,
                     ),
                     // BrnInputText(
                     //   maxHeight: 200,
                     //   minHeight: 30,
                     //   minLines: 1,
                     //   maxLength: 500,
                     //   bgColor: Colors.white,
                     //   textInputAction: TextInputAction.newline,
                     //   maxHintLines: 20,
                     //   textEditingController: controller.editingController,
                     //   hint: '记录一下您今天的工作成果何心得吧',
                     //   padding: EdgeInsets.fromLTRB(20, 10, 20, 14),
                     //   onTextChange: (text) {
                     //     print(text);
                     //   },
                     //   onSubmit: (text) {
                     //     print(text);
                     //   },
                     // ),
                   ),
                    SizedBox(
                      height: 1,
                    ),
                    Container(
                      padding: EdgeInsets.only(left: 15, top: 10),
                      height: 40,
                      color: Colors.white,
                      child: Container(
                        width: 200,
                        child: Row(
                          crossAxisAlignment: CrossAxisAlignment.start,
                          children: [
                            GestureDetector(
                              onTap: () {
                                // 展示actionSheet
                                controller.tapClickAccessory();
                              },
                              child: Image.asset(
                                'images/fujian_icon.png',
                                width: 20,
                                height: 20,
                              ),
                            ),
                            SizedBox(
                              width: 10,
                            ),
                            GestureDetector(
                              onTap: () {
                                controller.tapClickEmojiShow();
                                // controller.isShowEmoji = !controller.isShowEmoji;
                                // print(isShowEmoji);
                                // setState(() {});
                              },
                              child: Image.asset(
                                'images/biaoqing_icon.png',
                                width: 20,
                                height: 20,
                              ),
                            ),
                            SizedBox(
                              width: 10,
                            ),
                            GestureDetector(
                              onTap: () {
                                // Get.toNamed(AppRoutes.personnel);
                                controller.tapClickPushAite();
                              },
                              child: Image.asset(
                                'images/aite_icon.png',
                                width: 20,
                                height: 20,
                              ),
                            ),
                            // SizedBox(
                            //   width: 10,
                            // ),
                            // GestureDetector(
                            //   onTap: () {
                            //     // 展示actionSheet
                            //     showModalBottomSheet(
                            //         context: context,
                            //         backgroundColor: Colors.transparent,
                            //         builder: (BuildContext context) {
                            //           return BrnCommonActionSheet(
                            //             title: "",
                            //             actions: actions,
                            //             clickCallBack: (
                            //               int index,
                            //               BrnCommonActionSheetItem actionEle,
                            //             ) {
                            //               if (index == 0) {
                            //                 ImagePickers.openCamera(
                            //                         cropConfig: CropConfig(
                            //                             enableCrop: false,
                            //                             width: 2,
                            //                             height: 3))
                            //                     .then((Media? media) {
                            //                   // _listImagePaths.clear();
                            //                   if (media != null) {
                            //                     // _listImagePaths.add(media);
                            //                   }
                            //                   setState(() {});
                            //                 });
                            //               }
                            //               if (index == 1) {
                            //                 ImagePickers.openCamera(
                            //                         cameraMimeType:
                            //                             CameraMimeType.video)
                            //                     .then((media) {
                            //                   // _listVideoPaths.clear();
                            //                   if (media != null) {
                            //                     print(media.path);
                            //                     // _listVideoPaths.add(media);
                            //                   }
                            //                   setState(() {});
                            //                 });
                            //               }
                            //               if (index == 2) {
                            //                 selectImages();
                            //               }
                            //               // String title = actionEle.title;
                            //               // BrnToast.show("title: $title, index: $index", context);
                            //             },
                            //           );
                            //         });
                            //   },
                            //   child: Image.asset(
                            //     'images/tupian_icon.png',
                            //     width: 15,
                            //     height: 15,
                            //   ),
                            // ),
                            // SizedBox(
                            //   width: 10,
                            // ),
                          ],
                        ),
                      ),
                    ),
                    controller.isShowEmoji == false ? Container() : _emoJiList(),

//                     controller.listImagePaths.length==0?Container():Container(
//                       padding: EdgeInsets.only(left: 15,top: 5),
//                       child: Row(
//                         crossAxisAlignment: CrossAxisAlignment.start,
//                         children: [
//                           Padding(padding: EdgeInsets.only(top: 5),child: Text('附件:'),),
//                           Container(
//                             width: Get.width -100,
//                             child:   GridView.builder(
//                                 physics: NeverScrollableScrollPhysics(),
//                                 padding: EdgeInsets.all(5),
//                                 itemCount: controller.listImagePaths.length,
//                                 shrinkWrap: true,
//                                 gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
//                                     crossAxisCount: 3,
//                                     mainAxisSpacing: 20.0,
//                                     crossAxisSpacing: 10.0,
//                                     childAspectRatio: 1.0),
//                                 itemBuilder: (BuildContext context, int index) {
//                                   return GestureDetector(
//                                     onTap: (){
// //                        ImagePickers.previewImage(_listImagePaths[index].path);
//
// //                      List<String> paths = [];
// //                        _listImagePaths.forEach((media){
// //                          paths.add(media.path);
// //                        });
// //
// //                        ImagePickers.previewImages(paths,index);
//
//                                       ImagePickers.previewImagesByMedia(controller.listImagePaths,index);
//                                     },
//                                     child: Image.file(
//                                       File(
//                                         controller.listImagePaths[index].path!,
//                                       ),
//                                       fit: BoxFit.cover,
//                                     ),
//                                   );
//                                 }),
//                           )
//                         ],
//                       ),
//                     ),
//
//                     controller.listVideoPaths.length==0?Container(): GridView.builder(
//                         padding: EdgeInsets.all(5),
//                         physics: NeverScrollableScrollPhysics(),
//                         itemCount: controller.listVideoPaths.length,
//                         shrinkWrap: true,
//                         gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
//                             crossAxisCount: 3,
//                             mainAxisSpacing: 20.0,
//                             crossAxisSpacing: 10.0,
//                             childAspectRatio: 1.0),
//                         itemBuilder: (BuildContext context, int index) {
//                           return GestureDetector(
//                             onTap: (){
//                               ImagePickers.previewVideo(controller.listVideoPaths[index].path!,);
//                             },
//                             child: Image.file(
//                               File(
//                                 controller.listVideoPaths[index].thumbPath!,
//                               ),
//                               fit: BoxFit.cover,
//                             ),
//                           );
//                         }),

                    controller.listFilePaths==null?Container():Container(
                      color: Colors.white,
                      padding: EdgeInsets.only(left: 0),
                      child: ListView.builder(
                        shrinkWrap: true,
                        itemBuilder: (BuildContext context, int index) {
                        return Container(
                          child: Column(
                            crossAxisAlignment: CrossAxisAlignment.start,
                            children: [
                            Container(
                              padding: EdgeInsets.only(left: 15),
                              child:   Row(
                                children: [
                                  Image.asset('images/fujian_icon.png',width: 20,height: 20,),
                                  Text('附件：'),
                                ],
                              ),
                            ),
                              Container(
                                    // width: Get.width-140,
                                padding: EdgeInsets.only(left: 15),
                                    child: Text('${controller.listFilePaths[index]['name']}',
                                      maxLines: 3,overflow: TextOverflow.ellipsis,),
                                  )
                            ],
                          ),
                          // height: 15,
                          color: Colors.white,
                        );
                      },itemCount: controller.listFilePaths.length,)
                      // Row(
                      //   children: [
                      //     Text('附件:',style: appThemeData.textTheme.subtitle1,),
                      //     SizedBox(width: 5,),
                      //     // FlutterLogo(),
                      //     Image.asset('images/fujian_icon.png',width: 25,height: 25,),
                      //     SizedBox(width: 5,),
                      //     Container(
                      //       width: Get.width-100,
                      //       child: Text('${controller.fileName}'),
                      //     )
                      //   ],
                      // ),
                    )
                  ],
                ),
              ),
              // Expanded(child: BottomEnterPage()),
              Container(
                color: Colors.white,
                child: BottomEnterPage(() {
                  if (controller.editingController.text.isEmpty) {
                    BotToast.showText(text: '内容不能为空,请填写内容');
                    return;
                  }
                  controller.requestDataWithPublish();
                  print('点击了发布');
                }),
              )
            ],
          );
        }),
      ),
    );

  }

}